package com.qfedu.bigdataapp.activity;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.qfedu.bigdataapp.R;

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

public class LoginActivity extends AppCompatActivity {
    //两个用户的输入框：手机号、验证码
    private EditText etPhone, etSmsCode;
    //两个用户可以点击的按钮
    private Button btnSend, btnLogin;
    //忘记密码和新用户注册
    private TextView tvForgetPwd, tvSignUp;

    private static final int SMS_LENGTH = 4;
    //使用该字符串变量来存储生成的验证码
    private static final String PHONENUM = "13167582311";
    private String smsCode = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        //获取到布局文件中的控件
        etPhone = findViewById(R.id.et_phone);
        etSmsCode = findViewById(R.id.et_smscode);
        btnSend = findViewById(R.id.btn_sendsms);
        btnLogin = findViewById(R.id.btn_login);
        tvForgetPwd = findViewById(R.id.tv_forgetpwd);
        tvSignUp = findViewById(R.id.tv_signup);

        //为按钮设置监听器
        btnSend.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //当用户点击"发送验证码"按钮的时候，程序会到此处执行
                sendSms();
            }
        });
        //设置登录按钮的点击监听事件
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                login();
            }
        });
    }

    /**
     * 用户点击登录按钮时执行的登录操作
     */
    private void login() {
        //1、获取用户的输入信息
        String phoneStr = etPhone.getText().toString().trim();
        String smsCodeStr = etSmsCode.getText().toString().trim();

        //2、检查用户的输入
        if ("".equals(phoneStr) || "".equals(smsCodeStr)) {
            Toast.makeText(this, "手机号和验证码均不能为空，请重试", Toast.LENGTH_SHORT).show();
            return;
        }
        if (phoneStr.length() != 11 || smsCodeStr.length() != SMS_LENGTH) {
            Toast.makeText(this, "手机号或验证码格式不正确，请重试", Toast.LENGTH_SHORT).show();
            return;
        }
        if (!phoneStr.startsWith("1")) {
            Toast.makeText(this, "请再次检查输入的手机号", Toast.LENGTH_SHORT).show();
            return;
        }

        //3、核对数据、根据核对的结果进行处理
        if(PHONENUM.equals(phoneStr) && smsCode.equals(smsCodeStr)){
            Toast.makeText(this, "验证通过，登录成功", Toast.LENGTH_SHORT).show();
            onDestroy();
        }else{
            Toast.makeText(this, "验证失败", Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 发送验证码的功能
     */
    private void sendSms() {
        //1、获取用户的手机号内容输入
        String phoneStr = etPhone.getText().toString().trim();

        //2、对用户输入的内容进行检查
        if ("".equals(phoneStr)) {
            Toast.makeText(this, "手机号不能为空", Toast.LENGTH_SHORT).show();
            return;
        }
        if (phoneStr.length() != 11) {
            Toast.makeText(this, "手机号格式不正确，请重试", Toast.LENGTH_SHORT).show();
            return;
        }
        if (!phoneStr.startsWith("1")) {
            Toast.makeText(this, "请再次检查输入的手机号", Toast.LENGTH_SHORT).show();
            return;
        }
        //3、若符合规范，则生成验证码: 4、6
        Random random = new Random();
        random.setSeed(System.currentTimeMillis());
        //130
        for (int i = 0; i < SMS_LENGTH; i++) {
            smsCode += random.nextInt(10);
        }
        //4、发送验证码
        System.out.println("手机验证码是：" + smsCode);
        //5、提示用户
        Toast.makeText(this, "验证码发送成功", Toast.LENGTH_SHORT).show();

        //设置为按钮不可点击
        btnSend.setClickable(false);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                btnSend.setClickable(true);
            }
        }, 60 * 1000);

    }
}